Control methods for setting a reference voltage in an air treatment system

ABSTRACT

A control system and associated methods for an air treatment system. In one aspect, the present invention provides a control system and method for controlling blower speed as a function of separately determined smoke and dust concentrations. In one embodiment, the control system and method provides a variable delayed between changes in motor speed to address undesirable rapid changes between speeds. In another aspect, the present invention provides a system and method for calibrating a sensor to provide more uniform operation over time. In yet another aspect, the present invention provide a system and method for calibrating motor speed to provide more consistent and uniform motor speed over time. The present invention also provides a system and method for tracking filter life by as a function of time, motor speed and/or a sensed variable, such as particulate concentration in the environment.

The present application is a divisional of U.S. application Ser. No.11/456,955, filed Jul. 12, 2006, which claims the benefit of U.S.Provisional Application No. 60/699,163 filed Jul. 14, 2005.

BACKGROUND OF THE INVENTION

The present invention relates to control systems and methods, and moreparticularly to control systems and methods for an air treatment system.

Air treatment systems are available with a wide variety of controlsystems. A number of air treatment systems include manual controlsystems that permit the user to manually control a variety of aspects ofoperation of the system, such as motor speed and time of operation. Thispermits the user to manually increase the motor speed in response toenvironmental conditions, for example, when cigarette smoke enters theroom. Some of the more complex control systems provide automation ofselect operation, including motor speed and time of operation. Forexample, some control systems have the ability to adjust the motor speedin response to smoke and particulate concentrations in the air. Thiseliminates the need for the user to continually adjust the air treatmentsystem to match environmental conditions.

Over time, conventional filters become increasingly filled withcontaminants filtered from the air. The accumulation of contaminantsincreasingly affects performance of the air treatment system. At somepoint, the filter reaches a condition where it should be replaced. Toassist a user in determining the appropriate time for filterreplacement, some air treatment systems have the ability to track usageand calculate an approximation of when the filter should be replaced.Typically, these types of systems provide a visual indication, such asan illuminated LED, when it is time to change the filter. Although animprovement over systems without the ability to track filter life,conventional control systems of this type oversimplify the factors thatcontribute to filter life, and accordingly may not provide aparticularly accurate approximation of filter life.

Although existing control system help to automate operation of the airtreatment system, there remains a need for a more efficient andeffective control system that is capable of taking into consideration awide variety environmental conditions. This need also extends to controlsystems with more accurate and effective ways of tracking filter life.

SUMMARY OF THE INVENTION

In one aspect, the present invention provides a system for automaticallycontrolling the blower speed of an air treatment system in response toseparately determined smoke and dust concentrations.

In another aspect, the present invention provides a system for providingvariable delayed control over motor speed during the automatic mode ofoperation.

In yet another aspect, the present invention provides a system forcalibrating a particulate or chemical sensor incorporated into an airtreatment system.

In a further aspect, the present invention provides a system forcalibrating blower motor speed.

In another aspect, the present invention provides a system for trackingfilter life as a function of time, blower speed and/or a sensedvariable, such as particulate concentration or total particulatesaccumulated in the filter.

These and other objects, advantages, and features of the invention willbe readily understood and appreciated by reference to the detaileddescription of the current embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart showing the general steps of one embodiment of theautomatic motor speed control algorithm.

FIG. 2 is a flowchart showing the general steps of one embodiment of thedust algorithm.

FIG. 3 is a flowchart showing the general steps of one embodiment of thesmoke algorithm.

FIG. 4 is a flowchart showing the general steps of one embodiment of theparticulate level determination algorithm.

FIG. 5 is a flowchart showing the general steps of one embodiment of thesensor calibration algorithm.

FIG. 6 is a flowchart showing the general steps of one embodiment of themotor speed calibration algorithm.

FIG. 7 is a flowchart showing the general steps of one embodiment of thefilter life algorithm.

DESCRIPTION OF THE CURRENT EMBODIMENT

The present invention is described in connection with an air treatmentsystem having a blower that moves air through a prefilter, a particulatefilter and an odor filter. The air treatment system includes a controlsystem that monitors and controls operation of the system. The controlsystem includes generally conventional components, such as aprogrammable microcontroller and one or more sensors. In one embodiment,the control system includes a particulate sensor that providesinformation concerning the amount of particulate matter in the air, aswell as an RPM sensor that provides information concerning the speed ofthe blower motor.

The microcontroller is configured to run a plurality of controlalgorithms and to receive input from the sensors. In summary, thecontrol system may include an automatic operation algorithm thatautomatically adjusts blower motor speed as a function of the output ofthe particulate sensor. The automatic control algorithms may utilizeseparate smoke and dust level algorithms to determine blower motorspeed. The control system may also include a variable delay algorithmfor permitting the user to control the minimum amount of time that theblower will remain at a given speed before permitting adjustment to adifferent speed. The control system may further include calibrationalgorithms that improve the performance of the system. In oneembodiment, the calibration algorithms include a particulate sensorcalibration algorithm that can be run to calibrate the particulatesensor during production and periodically during operation. Thecalibration algorithms may also include a motor calibration algorithmthat can be run to provide ongoing calibration of blower motor speed.The control system may further include algorithms for tracking the lifeof the prefilter, odor filter and particulate filter. The control filterlife algorithms may track filter life based on time, blower speed, totalamount of particulate entering the system and/or particulateconcentration, and may take appropriate action, such as illuminate anindicator, when it is necessary to clean or replace a filter.

The following sections described the aforementioned control algorithmsin detail.

I. Automatic Motor Speed Control.

In one aspect, the present invention provides an algorithm forautomatically controlling the speed of a blower motor in an airtreatment system as a function of a sensed variable. For example, in oneembodiment, the system automatically increases or decreases the blowermotor speed as a function of the amount of particulates sensed by aparticulate sensor. In this embodiment, the blower motor may be movedbetween five discrete motor speeds. The number of different motor speedsmay be varied from application to application as desired. In oneembodiment, the blower motor speed is adjusted by varying the percentduty cycle of the speed control signal supplied to the blower motorusing conventional techniques and apparatus.

In this embodiment, the air treatment system includes a generallyconventional particulate sensor having an output voltage that variesdepending on the amount of particulate matter in the air. One suitableparticulate sensor is available from Sharp as Part No. GP2Y1010AU. Thisparticular sensor includes an LED spaced apart from a light sensor. Thelight sensor is configured to provide a signal having a voltage that isproportional to the amount of light emitted by the LED that reaches thesensor. The sensor is configured so that light emitted by the LED doesnot have a direct path to the light sensor. Rather, the LED light willonly reach the sensor if it is reflected toward the sensor. Particles inthe air provide the reflection necessary to direct some of the LED lighttoward the light sensor. The greater the size and/or number of particlesin the air, the greater the amount of light that will be reflected tothe sensor and hence the greater the output voltage. The particle sensorprovides an analog signal, and may be connected to an analog input onthe microcontroller. The microcontroller may convert the analog signalto a corresponding digital signal for processing.

As noted above, the control system is configured to operate the blowermotor at one of five different blower motor speeds. To provide directcorrelation between the particulate sensor readings and different blowermotor speeds, the range of possible sensor readings is divided into 5subranges. The number of subranges can vary depending on the number ofdesired blower speeds. For example, if 3 blower speeds were desired, therange of possible sensor readings would be divided into 3 separatesubranges. The method for determining the subranges may vary fromapplication to application. In addition, the correlation of speeds tosubranges may vary. For instance, there could be two speeds for eachsubrange. In this embodiment, however, the subranges are determined bysimply dividing the range of possible sensor readings into 5 evensubranges. The subranges may alternatively be weighted or otherwiserepresent unequal portions of the overall range. An example of analternative method for determining the subranges is described below.

In one embodiment, the control algorithm 10 takes periodic readings fromthe particulate sensor at a specific rate 12 (See FIG. 1). For example,in one embodiment, the control software takes a reading from theparticulate sensor once every 50 milliseconds. The frequency of thereadings may vary from application to application. In fact, as describedin more detail below, the frequency may be varied as a mechanism tocalibrate the sensor output.

In one embodiment, the present invention determines 20 the particulatelevel from the periodic sensor readings using two differentalgorithms—one configured to measure the level of smoke in the air 16and the other configured to measure the level of dust in the air 18. Theparticulate level can be used to set blower motor speed 22 and may alsobe displayed to the user. It has been determined that smoke has a moremoderate, but consistent, impact on the output of the particle sensor.Particles such as dust, on the other hand, cause more peaks in theoutput of the particle sensor. Improved performance is provided bydetermining the particulate level, and consequently the blower motorspeed, as a function of both the smoke level and the dust level.

In general, the dust algorithm 100 operates by considering a collectionof peak sensor readings over a plurality of consecutive time periods 102(See FIG. 2). The algorithm compares these peak sensor readings to alook-up table to determine the particle level output. In thisembodiment, the dust algorithm maintains 102 a revolvingfirst-in-first-out (FIFO) queue of variables, each associated with adiscrete time segments. Each of these time segments is referred to as a“bucket.” There are six buckets in this embodiment, but the number ofbuckets may vary from application to application. Each bucket isassociated with a fixed time period, which in one embodiment is a tensecond interval. But, the length of this interval may vary fromapplication to application. The algorithm uses the aforementioned FIFOqueue of variables to maintain a separate peak value for each bucket (orten second interval). Accordingly, the six buckets are collectivelyassociated with the last 60 seconds and the peak value variable for eachbucket contains the highest sensor reading taken during thecorresponding bucket (or ten second time interval).

Operation of the dust algorithm will now be described in more detail. Asnoted above, the control system takes a sensor reading every 50milliseconds. After each reading is taken, the algorithm determines 106the appropriate bucket using conventional timing techniques, such asusing interrupts to maintain a clock. The sensor reading is compared 108to the current value contained in the peak value variable for theappropriate bucket. If the sensor reading is higher than the currentvalue of the peak value variable 110, then the sensor reading is stored112 in the peak value variable—overwriting the existing value. If not,the sensor reading is ignored and the existing value is retained. Theprocess repeats 114 for each sensor reading. After the end of each tensecond interval, the peak value variable for the associated bucket holdsthe peak value for that ten second interval and processing continues forthe next bucket. As time passes to each new bucket, the sensor readingsare considered for writing to the peak value variable for the newbucket. Once six buckets are completed (in other words, the FIFO queueis full), the algorithm overwrites the peak value variable for theoldest of the six buckets. The process continues with each new bucketutilizing the peak value variable for the remaining oldest bucket. As aresult, the dust algorithm builds and maintains a queue of six peakvalue variables that contain the highest sensor readings for each of theimmediately preceding six ten second intervals.

The smoke algorithm 150 separately evaluates the same 50 millisecondsensor readings, but it does so in a different manner (See FIG. 3). Thesmoke algorithm maintains a rolling average of the readings over a fixednumber of readings. For example, in one embodiment, the smoke algorithm150 maintains a rolling average of the last 100 sensor readings. The 100readings are maintained 160 in a revolving first-in-first-out (FIFO)buffer 154. At the same time, a running total 152 of the readingscontained in the buffer is maintained. Each time a new reading is taken162, the oldest value in the buffer is subtracted 156 from the total andthe new reading is added 160. Accordingly, the average of the 100 sensorreadings in the buffer can be readily computed by dividing the runningtotal by 100.

In this embodiment, the data maintained by the smoke algorithm and thedust algorithm is used to compute the overall “particulate level.” Theparticulate level is then used to control blower motor speed. Theautomatic control algorithm of this embodiment periodically processesthe data maintained by the dust algorithm and the smoke algorithm todetermine the particulate level. In this embodiment, the data isprocessed every five seconds. One embodiment of the algorithm 200 fordetermining the particulate level is shown in FIG. 4. At each fivesecond interval, the automatic control algorithm processes the smokealgorithm data by retrieving the running total of the last 100 samplesand dividing that number by 100 to obtain the average sensor reading208. The average sensor reading is then compared 210 to the fiveparticulate level subranges (which, in this embodiment, are the same asthe dust level subranges) to obtain the smoke level. The automaticcontrol algorithm processes the dust algorithm data by performingactions on the six peak dust level variables maintained by the dustalgorithm to determine a dust level. In this embodiment, the valuecontained in each of the six peak dust level variables is separatelycompared 206 to the five dust level subranges to determine thecorresponding dust level for each particular bucket. For each dustlevel, the algorithm maintains a counter that contains the number of thesix current buckets that have the corresponding dust level. For example,if the six buckets include three buckets with a peak value in the dustlevel 4 range, the value of the dust level four counter would be 3.Similarly, if two of the buckets included a peak value in the dust level3 range, the value of the dust level 3 counter would be 2. Finally, ifthe last bucket included a peak value in the dust level 5 range, thevalue of the dust level 5 counter would be 1. For each dust levelcounter that is not zero, the counter is compared to a look-up table todetermine a corresponding “temporary particle level.” The automaticcontrol algorithm then determines the particle level as a function ofthe temporary values returned from the look-up table. For example, theparticle level may simply be the largest of the dust levels returned foreach bucket. Alternatively, the particle level can be determined as asimple or weighted average of the returned dust level. The following isa temporary particle level look-up table of one embodiment.

TEMPORARY PARTICLE LEVEL LOOKUP TABLE 1 Count 2 Counts 3 Counts 4 Counts5 Counts 6 Counts Dust Level 1 Counter Dust_Level_1 Dust_Level_1Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust Level 2 CounterDust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_2Dust_Level_2 Dust Level 3 Counter Dust_Level_2 Dust_Level_2 Dust_Level_2Dust_Level_3 Dust_Level_3 Dust_Level_3 Dust Level 4 Counter Dust_Level_3Dust_Level_3 Dust_Level_4 Dust_Level_4 Dust_Level_4 Dust_Level_4 DustLevel 5 Counter Dust_Level_3 Dust_Level_4 Dust_Level_4 Dust_Level_5Dust_Level_5 Dust_Level_5 Row = Dust Level Column = Number of Bucketswithin each Dust LevelIn the above example, the temporary particle levels determined from thelook-up table would be “Dust Level 4,” “Dust Level 2” and “Dust Level3.” The algorithm returns the highest of these temporary particle levelsas the actual particle level. In this case, the algorithm would return aparticle level of 4.

The automatic control algorithm then determines the actual particulatelevel (and consequently the motor blower speed) as a function of thesmoke level and the dust level 212. In one embodiment, the algorithmsimply takes the larger of the dust level and the smoke level, and usesthat value as the particulate level to set the actual blower speed. Inother embodiments, the actual blower speed may be some other function ofthe dust level and the smoke level. For example, the actual blower speedmay be a simple or weighted average of the dust level and the smokelevel.

In an alternative embodiment, the control system may include a pluralityof different look-up tables for use in connection with the dustalgorithm, each being configured to reflect a different level ofsensitivity. In this alternative embodiment, the user is provided with amechanism for selecting the look-up table corresponding with the desiredlevel of sensitivity. For example, in one example of this alternativeembodiment, the control system may include five alternative temporaryparticle level look-up tables. The following are five alternativetemporary particle look-up tables for one exemplary embodiment of thisalternative embodiment. As can be seen, these alternative look-up tablesare configured so that each successive table provides an overallincreasingly greater response to the sensed values. By permitting a userto select the desired table, the system is capable of accommodatingusers with different levels of sensitivity.

TEMPORARY PARTICLE LEVEL LOOKUP TABLES 1 Count 2 Counts 3 Counts 4Counts 5 Counts 6 Counts Sensitivity Level 1 Dust Level 1 CounterDust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1Dust_Level_1 Dust Level 2 Counter Dust_Level_1 Dust_Level_1 Dust_Level_2Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust Level 3 Counter Dust_Level_2Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_3 Dust_Level_3 DustLevel 4 Counter Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_3Dust_Level_3 Dust_Level_4 Dust Level 5 Counter Dust_Level_2 Dust_Level_3Dust_Level_3 Dust_Level_3 Dust_Level_4 Dust_Level_5 Sensitivity Level 2Dust Level 1 Counter Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1Dust_Level_1 Dust_Level_1 Dust Level 2 Counter Dust_Level_1 Dust_Level_1Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust Level 3 CounterDust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_3 Dust_Level_3Dust_Level_3 Dust Level 4 Counter Dust_Level_2 Dust_Level_3 Dust_Level_3Dust_Level_3 Dust_Level_4 Dust_Level_4 Dust Level 5 Counter Dust_Level_3Dust_Level_3 Dust_Level_3 Dust_Level_4 Dust_Level_4 Dust_Level_5Sensitivity Level 3 Dust Level 1 Counter Dust_Level_1 Dust_Level_1Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust Level 2 CounterDust_Level_1 Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust_Level_2Dust_Level_2 Dust Level 3 Counter Dust_Level_2 Dust_Level_2 Dust_Level_2Dust_Level_3 Dust_Level_3 Dust_Level_3 Dust Level 4 Counter Dust_Level_3Dust_Level_3 Dust_Level_3 Dust_Level_4 Dust_Level_4 Dust_Level_4 DustLevel 5 Counter Dust_Level_3 Dust_Level_3 Dust_Level_4 Dust_Level_4Dust_Level_4 Dust_Level_5 Sensitivity Level 4 Dust Level 1 CounterDust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1Dust_Level_1 Dust Level 2 Counter Dust_Level_2 Dust_Level_2 Dust_Level_2Dust_Level_2 Dust_Level_2 Dust_Level_2 Dust Level 3 Counter Dust_Level_2Dust_Level_2 Dust_Level_2 Dust_Level_3 Dust_Level_3 Dust_Level_3 DustLevel 4 Counter Dust_Level_3 Dust_Level_3 Dust_Level_4 Dust_Level_4Dust_Level_4 Dust_Level_4 Dust Level 5 Counter Dust_Level_3 Dust_Level_4Dust_Level_4 Dust_Level_5 Dust_Level_5 Dust_Level_5 Sensitivity Level 5Dust Level 1 Counter Dust_Level_1 Dust_Level_1 Dust_Level_1 Dust_Level_1Dust_Level_1 Dust_Level_1 Dust Level 2 Counter Dust_Level_2 Dust_Level_2Dust_Level_2 Dust_Level_2 Dust_Level_3 Dust_Level_3 Dust Level 3 CounterDust_Level_2 Dust_Level_3 Dust_Level_3 Dust_Level_3 Dust_Level_3Dust_Level_4 Dust Level 4 Counter Dust_Level_3 Dust_Level_3 Dust_Level_4Dust_Level_4 Dust_Level_4 Dust_Level_5 Dust Level 5 Counter Dust_Level_3Dust_Level_4 Dust_Level_4 Dust_Level_5 Dust_Level_5 Dust_Level_5 Row =Dust Level Column = Number of Buckets within each Dust Level

As noted above, the control system is also provided with a mechanism forpermitting the user to select one of the various alternative look-uptables. In one embodiment, the control system is configured to cyclethrough the alternative look-up tables in response to user input on thecontrol panel. For example, in the illustrated embodiment, the user maydepress and hold both the “Automatic” and “Timer” buttons on the controlpanel while the system is plugged-in to initiate the sensitivityselection algorithm. This algorithm cycles to the next alternativelook-up tables each time the “Automatic” button is pressed. If thebutton is pressed when the most sensitive look-up table is selected, thesystem cycles back down to the least sensitive look-up table. Thecontrol system may leave the sensitivity selection algorithm if the“Automatic” button is not pressed for a given period of time. Forexample, the control algorithm may exit the sensitivity selectionalgorithm if the “Automatic” button is not pressed for a period of fiveseconds. The control panel may include a visual indication of thecurrent sensitivity setting. For example, the control panel may includea separate LED for each setting and the appropriate LED may beilluminated to show the current sensitivity.

II. Variable Delay.

In the automatic mode of operation, it is possible that the determinedactual blower speed will vary relatively quickly from one blower speedto another. It is possible that a user will be distracted by constant orrapid changes in blower speed. Accordingly, the automatic controlalgorithm includes a delay algorithm that will maintain the blower at agiven blower speed for a minimum period of time. For example, the delayperiod may be set at 30 seconds so that the blower will remain at agiven speed for at least 30 seconds. If the smoke algorithm and the dustalgorithm determines that the blower speed should be varied during thisinitial 30 second delay, the automatic control algorithms willnonetheless maintain the current blower speed until the end of the 30second period. At the end of the 30 second period, the automatic controlalgorithm will again permit the blower speed to be adjusted as afunction of the smoke algorithm and the dust algorithm. To provide thedelay functionality, the control software maintains a counter of thetime that has passed since that last blower speed change. Each time theblower speed is changed, this counter is reset to zero. The automaticcontrol algorithm checks this counter before implementing a blower speedchange. If the counter is less than 30 seconds, the automatic controlalgorithm simply ignores the new blower speed setting determined by thesmoke and dust algorithms. If the counter is at or above 30 seconds, theautomatic control algorithm implements the blower speed change andresets the counter to zero.

In some applications, it may be desirable to vary the amount of delayincluded in the blower speed control algorithms. For example, whenproviding demonstrations of the air treatment system, it may bedesirable to demonstrate rapid changes in blower speed in response tochanges in the particulate concentration in a room. As another example,a user may prefer a longer or shorter delay. To permit the length of thedelay to be varied, the control software includes a variable delayalgorithm. The variable delay algorithm permits a user to set the timeperiod during which the blower will remain at a given speed. In oneembodiment, the variable delay algorithm permits the user to select oneof various preset time delays, for example, ranging from five seconds to55 seconds in ten second intervals. In this embodiment, changes in thedelay may be made by actuation of a corresponding “Variable Delay”control button. Alternatively, changes in the delay may be made bydepressing a combination of other control buttons, for example, bycycling through the various delay values in response to simultaneouspushes of the “Blower Speed” and “Automatic” control buttons.

In some situations, the dust level may linger around the borderlinebetween two ranges. Vacillation of the dust level above and below theborderline, may cause the control algorithms to continuously increaseand decrease the blower motor speed at the fastest rate permitted by thevariable delay algorithms. In some applications, it may be undesirableto have such a rapid and repetitive change in blower motor speed.Accordingly, the control algorithms may include an additional delayalgorithm that permits the motor speed to be reduced from one level tothe next only when the sensor reading is substantially within the nextlower range. In one embodiment, the system will only reduce the blowermotor speed if the particulate sensor reading is at least 100 millivoltsinto the next lower range. The particular offset required to permitmovement to the next lower blower motor speed may, however, vary fromapplication to application. Although the described embodiment of thisalgorithm affects only downward movement of the blower motor speed, thealgorithm could alternatively affect only upward movement of the blowermotor speed or both upward and downward movement.

III. Sensor Calibration Algorithm.

Experience has revealed that not all particle sensors provide the sameoutput voltage in response to the same particulate concentrations in theair. These variations may result from various factors, such asvariations in the light emitted by the LED and imperfections in thelight sensor. Further, the sensor's output may vary over time, forexample, as a result of changes in the operation of the LED or lightsensor that naturally occur over the life cycle of the components.

To improve performance, the present invention provides an algorithm forcalibrating a particulate sensor. This algorithm permits that sensor tobe calibrated during production to accommodate variations resulting fromthe manufacture of the sensor, as well as periodically over the life ofthe air treatment system to accommodate variations occurring over thelife cycle of the components. In effect, the algorithm may shift and/orscale the output voltage of the sensor to correlate with the desiredblower speeds. Once computed, the sensor calibration data may be storedin an EEPROM so that it can be retrieved even if the system loses power.Although the present invention is described in connection with thecalibration of a particulate sensor, the calibration algorithms are wellsuited for use in calibrating other types of sensors, such as chemicalsensors.

In one embodiment, the calibration algorithm is configured to permitadjustment of the reference voltage (or baseline voltage) (See FIG. 5).The reference voltage is the output voltage expected from the sensorwhen the particulate concentration is at or reasonably close to zero. Tocalibrate the reference voltage, the calibration algorithm 250 includesthe steps of: (i) taking a first sample reading from the sensor 252,(ii) storing the first sample reading in a local variable 254, (iii)taking a sample reading from the sensor 256, (iv) comparing the readingwith the value of the local variable 258, (v) if the reading is lowerthan the local variable, then store the sample reading in the localvariable 262, (vi) repeat steps (iii) and (iv) at 100 millisecondintervals until a total of 20 sample readings have been collected 264,and (iv) use the value stored in the local variable as the referencevoltage. In an alternative embodiment, the reference voltage may bedetermined by computing the average of a predetermined number ofreadings. For example, the control algorithm may include the steps of:(i) taking a first sample reading from the sensor, (ii) storing thefirst sample reading in a local variable, (iii) taking a sample readingfrom the sensor, (iv) adding the sample reading to the value of thelocal variable, (v) repeating steps (iii)-(iv) until a total of 20samples readings have been taken and the summation of the 20 samplereadings is stored in the local variable, (vi) determining the averagesample reading by dividing the value stored in the local variable by 20,(vii) using the average sample reading as the reference voltage.

Once the reference voltage has been obtained, the control software cancalculate the sensor reading ranges that equate to the possible blowerspeeds. In this embodiment, the control system is configured to operatethe blower motor at five different speeds. Accordingly, the sensorreading ranges are to be divided into five corresponding subranges. Inone embodiment, these five subranges are determined by calculating fivesequential 250 millivolt windows based on the determined referencevoltage. For example, if the reference voltage is determined to be 1.235volts, the five subranges would be: (1) 1.235 to 1.485 millivolts, (2)1.486 to 1.736 millivolts, (3) 1.737 to 1.987 millivolts, (4) 1.988 to2.238 millivolts and (5) 2.239 to 2.489 millivolts. Values falling below1.235 may be associated with the first subrange. Similarly, valuesexceeding 2.489 millivolts may be associated with the fifth subrange.

In an alternative embodiment, it may be desirable to vary the size ofthe subranges. For example, in applications where the output voltage ofthe sensor is not linearly proportional to the particulate concentrationin the air, it may be desirable to vary the size of the subranges tofollow the curve of the output voltage. It has been determined that thecurve of the output voltage for a given sensor varies based in largepart on the output voltage of the sensor when the sensor is sensingsubstantially clean air (i.e. the reference voltage). In fact, themanufacturer of the particulate sensor identified above and utilized inone embodiment of the present invention provides information about theoutput voltage curve for the sensors based on the sensor's referencevoltage. To adjust the subranges for a given sensor, the algorithmcomputes the reference voltage for the sensor utilizing the methodologydescribed above. Once the reference voltage is determined, the subrangealgorithm uses the reference voltage to determine the subranges. In oneembodiment, the subrange algorithm compares the reference voltage to alook-up table stored in the system. The look-up table defines thesubranges that correspond with each particular reference voltage. Forexample, the look-up table may include the values representative of thebounds of each subrange. In an alternative embodiment, the look-up tablemay be replaced by a formula that approximates the appropriate bounds ofeach subrange.

There are alternative methodologies for calibrating the sensor. In analternative embodiment, the calibration algorithm may vary the frequencyat which samples are taken from the sensor during normal operation. Ithas been determined that the sampling frequency affects the outputvoltage obtained from the sensor. This is true at least with respect tothe particulate sensor identified above. The precise reason for this hasnot been determined, but it appears to be due to inherentcharacteristics of the sensor. For example, it has been determined thatby increasing the sampling frequency there will be a decrease in theoutput voltage of the sensor over the same air conditions. Similarly, byreducing the sampling frequency there will be an increase in the outputvoltage of the sensor over the same air conditions. Accordingly, in thisembodiment, the calibration algorithm includes the steps of: (i) takinga fixed number of sample readings at a fixed frequency, (ii) comparingthe lowest reading value with the desired reference voltage, (iii) ifthe lowest reading is within an acceptable range for the referencevoltage, then quit, leaving the sampling frequency at its current value,(iv) if the lowest reading is higher than the acceptable range, thenincrease the sampling frequency and repeat steps (i)-(iii), and (v) ifthe lowest reading is lower than the acceptable range, then decrease thesampling frequency and repeat steps (i)-(iii). In one embodiment, theinitial frequency is set to provide a 50 millisecond interval for sensorreadings and the frequency may be adjusted in fixed segments of 5 to 10millisecond segments. Alternatively, the frequency may be adjusted as afunction of the difference between the lowest sample reading and theacceptable range. For example, the frequency may be adjusted by agreater amount if the lowest sample reading is farther away from theacceptable range.

IV. Motor Speed Calibration.

To provide consistent operation of the blower, the present inventionprovides an algorithm for calibrating motor speed. In one embodiment,the motor speed calibration algorithm is operating continuously tomaintain consistent blower operation over the life of the system. Inthis embodiment, the motor speed calibration algorithm is run each timethat the motor speed changes. The motor speed calibration algorithm mayalternatively be run continuously or at different times periods.

In one embodiment, the motor includes an RPM sensor that provides apulse signal at a frequency that is representative of the motor RPMs.The RPM sensor may be connected to a digital input on themicrocontroller. The microcontroller may determine the frequency of thePWM signals.

In one embodiment the motor speed calibration algorithm is run each timethat the motor speed is changed. In this embodiment (See FIG. 6), themotor speed calibration algorithm 300 may include the following generalsteps: (i) wait 30 seconds after a change is blower motor speed 302,(ii) take 30 readings from the RPM sensor at 1 second intervals 304,(iii) compute the average of these 30 readings 306, (iv) compare theaverage reading with a predetermined range of acceptable RPMs 308, (v)if the average reading is within an acceptable range for that motorspeed, then quit, (vi) if the average reading is high 310, the percentduty cycle of the speed control signal applied to the motor is reducedby one percent 312, (vi) if the average reading is low 314, the percentduty cycle of the speed control signal applied to the motor is increasedby one percent 316, and (vii) repeat steps (ii) through (vii) until theaverage reading falls within the acceptable range. If desired, each timethere is a change in percent duty cycle, the new value for thatparticular blower motor speed can be stored in an EEPROM so that thevalues can be retrieved after the system recovers from a power failure.

As noted, the motor calibration algorithm of one embodiment is run eachtime the blower motor speed changes. If desired, the system may beconfigured to provide calibration of all five blower speeds at initialstart up. For example, the control system may step through each blowerspeed upon initial start-up and hence cause calibration at each blowerspeed.

V. Filter Life.

The present invention includes algorithms for tracking the life of oneor more filters. The purpose of these algorithms is to provide the userwith an indication when it is necessary to clean or replace the filters.In one embodiment, the present invention is intended for use in an airtreatment system having a pre-filter, a particulate filter (e.g. a HEPAfilter) and an odor filter (e.g. an activated carbon filter). Thepresent invention includes algorithms for monitoring the life of each ofthese filters. The life of the pre-filter and the life of the odorfilter are computed as a function of time and motor speed. The life ofthe particulate is computed as a function of time, motor speed and theoutput of the particulate sensor. In one embodiment, the control systemmaintains a separate filter life variable for each filter. Duringoperation, these variables are incremented by a value that is determinedas a function of the relevant factors (e.g. time, blower speed and/orparticulate sensor output).

In one embodiment, the filter life algorithm for the prefilter includesthe following general steps: (i) obtain motor speed value, (ii) retrievecorresponding motor speed factor from a pre-filter look-up table, (iii)obtain time interval, (iv) multiply time interval by the motor speedfactor, and (v) increment prefilter life counter by the product of timeinterval and motor speed factor.

In one embodiment, the filter life algorithm for the odor filter isessentially identical to the prefilter algorithm except that it utilizesa different look-up table. The odor filter algorithm includes thefollowing general steps: (i) obtain motor speed value, (ii) retrievecorresponding motor speed factor from the odor filter look-up table,(iii) obtain time interval, (iv) multiply time interval by the motorspeed factor, and (v) increment odor filter life counter by the productof time interval and motor speed factor.

In one embodiment, the filter life algorithm for the particulate filteris somewhat more complex than the other filter life algorithms becauseit may take particulate sensor readings into consideration. Theparticulate filter life algorithm 400 shown in FIG. 7 includes thefollowing general steps: (i) obtain motor speed value 408, (ii) retrievecorresponding motor speed factor from a particulate filter look-up table410, (iii) obtain current particulate level value 412, (iv) retrievecorresponding particulate level factor from a look-up table 414, (v)obtain time interval 416, (vi) multiply motor speed factor, particulatelevel factor and time interval 418, (vii) increment filter life counterby product of motor speed factor, particulate level factor and timeinterval 420.

In another embodiment, the filter life algorithm for the particulatefilter determines the total amount of particulate that has entered thefilter and compares that to a predetermined limit. In the current filterused this limit is 160 grams. This limit can vary depending on thedesign of the filter and the application. The particulate filter lifealgorithm in this case includes the following general steps: (i) obtainmotor speed value, (ii) obtain current particulate level value, (iii)use the particulate level value to calculate the particulate density(grams/cubic foot) or retrieve the particulate density from a look-uptable, (iv) obtain time interval since the last calculation, (v)multiply motor speed, particulate density and time interval, (vi)increment filter life accumulator by product of motor speed, particulatedensity and time interval.

The filter life algorithm may take any of various predetermined actionsonce the filter life for a particular filter has exceeded apredetermined value. For example, the filter life algorithm mayilluminate an LED or other indicator to advise the user that the filterneeds to be changed. If the user fails to change the filter within aspecific period of time, the filter life algorithm could preventoperation of the system.

The filter life algorithms are described in connection with an airtreatment system having a particulate sensor. Accordingly, theparticulate filter life algorithm takes into consideration the output ofthe particulate sensor. These algorithms are also well suited for usingin taking into consideration other types of relevant input. For example,if the air treatment system included a chemical sensor, the odor filterlife algorithm may take into account the output of the chemical sensorin essentially the same manner as the particulate filter life algorithmtakes account of the particulate sensor output.

The above description is that of the current embodiment of theinvention. Various alterations and changes can be made without departingfrom the spirit and broader aspects of the invention as defined in theappended claims, which are to be interpreted in accordance with theprinciples of patent law including the doctrine of equivalents. Anyreference to claim elements in the singular, for example, using thearticles “a,” “an,” “the” or “said,” is not to be construed as limitingthe element to the singular.

1. A method for setting the reference voltage for a sensor, comprisingthe steps of: taking a plurality of sample readings from the sensor; andsetting the reference voltage as a function of the plurality of samplereadings.
 2. The method of claim 1 wherein said setting step includesthe steps of: maintaining data representative of the lowest samplereading; and setting the reference voltage as a function of the lowestsample reading.
 3. The method of claim 1 wherein said setting stepincludes the steps of: individually maintaining data representative ofthe plurality of sample readings; and setting the reference voltage as afunction of the maintained data representative of the plurality ofsample readings.
 4. The method of claim 1 wherein said setting stepincludes the steps of: maintaining data representative of the pluralityof sample readings; and setting the reference voltage as an average ofthe plurality of sample readings.
 5. The method of claim 1 wherein saidtaking step includes the steps of: taking a first sample reading fromthe sensor; storing the first sample reading in a local variable; takingan additional sample reading from the sensor; and comparing eachadditional reading with the local variable and if the reading is lowerthan the local variable, then storing the sample reading in the localvariable.
 6. The method of claim 5 wherein said taking step includesrepeating said taking an additional sample reading and said comparingsteps a predetermined number of times, wherein said setting step isfurther defined as setting the reference voltage value to be the valuestored in the local variable.
 7. The method of claim 6 wherein saidtaking step includes repeating said taking an additional sample readingand said comparing steps 18 times.
 8. The method of claim 6 furthercomprising performing said taking an additional sample reading and saidcomparing steps at 100 millisecond intervals.
 9. A method for settingthe reference voltage for a sensor, comprising the steps of: taking afirst sample reading from the sensor; storing the first sample readingin a local variable; taking an additional sample reading from thesensor; adding the additional sample reading to the first sample readingto arrive at a sum and storing the sum in the local variable;determining an average sample reading by dividing the sum by a totalnumber of sample readings; and using the average sample reading as thereference voltage.
 10. The method of claim 9 including repeating saidtaking an additional sample reading and said adding steps apredetermined number of times.
 11. The method of claim 10 includingrepeating said taking an additional sample reading and said adding steps18 times, wherein the total number of readings is
 20. 12. The method ofclaim 11 further comprising performing said taking an additional samplereading at 100 millisecond intervals.
 13. The method of claim 12 furthercomprising adjusting the intervals in fixed segments of 5 to 10millisecond segments.
 14. A method for setting the reference voltage fora sensor, comprising the steps of: taking a fixed number of samplereadings at a sampling frequency; comparing the lowest reading valuewith an acceptable range of values corresponding to an acceptablereference voltage; in response to the lowest reading being higher thanthe acceptable range, increasing the sampling frequency.
 15. The methodof claim 14 further comprising repeating the taking, comparing andincreasing steps.
 16. The method of claim 14 further comprisingdecreasing the sampling frequency in response to the lowest readingbeing lower than the acceptable range.
 17. The method of claim 14further comprising performing the taking and comparing steps at 50millisecond intervals.
 18. The method of claim 17 further comprisingadjusting the sampling frequency in fixed segments of 5 to 10millisecond segments.
 19. The method of claim 14 further comprisingadjusting the sampling frequency as a function of the difference betweenthe lowest sample reading and the acceptable range.
 20. The method ofclaim 19 further comprising, in response to the lowest reading beingwithin the acceptable range, leaving the frequency at its current value.